package com.bjc.base.validation.constraints;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import javax.validation.Constraint;
import javax.validation.Payload;

import com.bjc.base.validation.constraints.validator.IsGenderValidator;

/**
 * 校验男女
 * 
 * @author 许自辉
 * @date 2017年9月20日
 */
@Target({ ElementType.FIELD, ElementType.ANNOTATION_TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = IsGenderValidator.class)
@Documented
public @interface IsGender {
	/**
	 * 用来定义默认得消息模版, 当这个约束条件被验证失败的时候,通过此属性来输出错误信息.
	 * 
	 * @return
	 */
	String message() default "性别的值只限于（male，female）";

	/**
	 * 用于指定这个约束条件属于哪(些)个校验组
	 * 
	 * @return
	 */
	Class<?>[] groups() default {};

	/**
	 * Bean Validation API 的使用者可以通过此属性来给约束条件指定严重级别. 这个属性并不被API自身所使用.
	 * 
	 * @return
	 */
	Class<? extends Payload>[] payload() default {};
}